<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="PG-Strom v2.0 Official Documentation">
  <meta name="author" content="PG-Strom Development Team">
  <link rel="shortcut icon" href="img/favicon.ico">
  <title>はじめに - PG-Strom Manual</title>
  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>

  <link rel="stylesheet" href="css/theme.css" type="text/css" />
  <link rel="stylesheet" href="css/theme_extra.css" type="text/css" />
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
  <link href="//fonts.googleapis.com/earlyaccess/notosansjp.css" rel="stylesheet">
  <link href="//fonts.googleapis.com/css?family=Open+Sans:600,800" rel="stylesheet">
  <link href="custom.css" rel="stylesheet">
  
  <script>
    // Current page data
    var mkdocs_page_name = "\u306f\u3058\u3081\u306b";
    var mkdocs_page_input_path = "index.md";
    var mkdocs_page_url = null;
  </script>
  
  <script src="js/jquery-2.1.1.min.js" defer></script>
  <script src="js/modernizr-2.8.3.min.js" defer></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  <script>hljs.initHighlightingOnLoad();</script> 
  
</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
      <div class="wy-side-nav-search">
        <a href="." class="icon icon-home"> PG-Strom Manual</a>
        <div role="search">
  <form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
  </form>
  [<strong>Japanese</strong> | <a href="./../"    style="color: #cccccc">English</a>]
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
	<ul class="current">
	  
          
            <li class="toctree-l1 current">
		
    <a class="current" href=".">はじめに</a>
    <ul class="subnav">
            
    <li class="toctree-l2"><a href="#pg-strom">PG-Stromとは?</a></li>
    
        <ul>
        
            <li><a class="toctree-l3" href="#_1">ライセンスと著作権</a></li>
        
        </ul>
    

    <li class="toctree-l2"><a href="#_2">コミュニティ</a></li>
    
        <ul>
        
            <li><a class="toctree-l3" href="#_3">バグや障害の報告</a></li>
        
            <li><a class="toctree-l3" href="#_4">新機能の提案</a></li>
        
            <li><a class="toctree-l3" href="#_5">サポートポリシー</a></li>
        
            <li><a class="toctree-l3" href="#_6">バージョンポリシー</a></li>
        
        </ul>
    

    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="install/">インストール</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">利用ガイド</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="operations/">基本的な操作</a>
                </li>
                <li class="">
                    
    <a class="" href="sys_admin/">システム管理</a>
                </li>
                <li class="">
                    
    <a class="" href="brin/">インデックス対応</a>
                </li>
                <li class="">
                    
    <a class="" href="partition/">パーティション</a>
                </li>
                <li class="">
                    
    <a class="" href="troubles/">トラブルシューティング</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">先進機能</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="ssd2gpu/">SSDtoGPUダイレクトSQL</a>
                </li>
                <li class="">
                    
    <a class="" href="arrow_fdw/">Arrow_fdw</a>
                </li>
                <li class="">
                    
    <a class="" href="gstore_fdw/">Gstore_fdw</a>
                </li>
                <li class="">
                    
    <a class="" href="plcuda/">PL/CUDA</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">リファレンス</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="ref_types/">データ型</a>
                </li>
                <li class="">
                    
    <a class="" href="ref_devfuncs/">関数と演算子</a>
                </li>
                <li class="">
                    
    <a class="" href="ref_sqlfuncs/">SQLオブジェクト</a>
                </li>
                <li class="">
                    
    <a class="" href="ref_params/">GUCパラメータ</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="release_note/">リリースノート</a>
	    </li>
          
        </ul>
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href=".">PG-Strom Manual</a>
      </nav>

      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href=".">Docs</a> &raquo;</li>
    
      
    
    <li>はじめに</li>
    <li class="wy-breadcrumbs-aside">
      
    </li>
  </ul>
  <hr/>
</div>
          <div role="main">
            <div class="section">
              
                <p>本章ではPG-Stromの概要、および開発者コミュニティについて説明します。</p>
<h1 id="pg-strom">PG-Stromとは?</h1>
<p>PG-StromはPostgreSQL v9.6および以降のバージョン向けに設計された拡張モジュールで、チップあたり数千個のコアを持つGPU(Graphic Processor Unit)デバイスを利用する事で、大規模なデータセットに対する集計・解析処理やバッチ処理向けのSQLワークロードを高速化するために設計されています。</p>
<p>PG-Stromの中核となる機能は、SQL命令から自動的にGPUプログラムを生成するコードジェネレータと、SQLワークロードをGPU上で非同期かつ並列に実行する実行エンジンです。現バージョンではSCAN（WHERE句の評価）、JOINおよびGROUP BYのワークロードに対応しており、GPU処理にアドバンテージがある場合にはPostgreSQL標準の実装を置き換える事で、ユーザやアプリケーションからは透過的に動作します。</p>
<p>また、PG-StromはいくつかのDWH専用システムとは異なり、行形式でデータを保存するPostgreSQLとストレージシステムを共有しています。これは必ずしも集計・解析系ワークロードに最適ではありませんが、一方で、トランザクション系データベースからデータを移動することなく集計処理を実行できるというアドバンテージでもあります。</p>
<p>PG-Strom v2.0ではストレージ読出し能力が強化されました。SSD-to-GPUダイレクトSQL機構はストレージ（NVME-SSD）からGPUへ直接データをロードし、クエリを処理するGPUへ高速にデータを供給する事を可能にします。</p>
<p>一方、高度な統計解析や機械学習といった極めて計算集約度の高い問題に対しても、PL/CUDAやgstore_fdwといった機能を使用する事で、データベース管理システム上で計算処理を行い、結果だけをユーザへ返すといった使い方をする事が可能です。</p>
<h2 id="_1">ライセンスと著作権</h2>
<p>PG-StromはGPL(GNU Public License)v2に基づいて公開・配布されているオープンソースソフトウェアです。
ライセンスの詳細は<a href="https://raw.githubusercontent.com/heterodb/pg-strom/master/LICENSE">LICENSE</a>を参照してください。</p>
<p>PG-Stromの著作権はPG-Strom Development Teamが有しています。PG-Strom Development Teamは法的な主体ではなく、国籍を問わず、PG-Stromプロジェクトに貢献した個々の開発者や企業の総称です。</p>
<h1 id="_2">コミュニティ</h1>
<p>開発者コミュニティのMLが<a href="https://groups.google.com/a/heterodb.com/forum/#!forum/pgstrom">PG-Strom community ML</a>に準備されています。
PG-Stromに関連した質問、要望、障害報告などはこちらにポストしてください。</p>
<p>本MLは世界中に公開されたパブリックのMLである事に留意してください。つまり、自己責任の下、秘密情報が誤って投稿されないように注意してください。</p>
<p>本MLの優先言語は英語です。ただ一方で、歴史的経緯によりPG-Stromユーザの多くの割合が日本人である事は承知しており、ML上で日本語を利用した議論が行われることも可能とします。その場合、Subject(件名)に<code>(JP)</code>という接頭句を付ける事を忘れないようにしてください。これは非日本語話者が不要なメッセージを読み飛ばすために有用です。</p>
<h2 id="_3">バグや障害の報告</h2>
<p>結果不正やシステムクラッシュ/ロックアップ、その他の疑わしい動作を発見した場合は、<a href="https://github.com/heterodb/pg-strom/issues">PG-Strom Issue Tracker</a>で新しいイシューをオープンし <strong>bug</strong> タグを付けてください。</p>
<p>バグレポートの作成に際しては、下記の点に留意してください。
- 同じ問題を最新版で再現する事ができるかどうか?
    - PG-Stromの最新版だけでなく、OS、CUDA、PostgreSQLおよび関連ソフトウェアの最新版でテストする事をお勧めします。
- PG-Stromが無効化された状態でも同じ問題を再現できるかどうか?
    - GUCパラメータ <code>pg_strom.enabled</code> によってPG-Stromの有効/無効を切り替える事ができます。
- 同じ既知問題が既にGitHubのイシュートラッカーに存在するかどうか？
    - <em>close</em> 状態のイシューを検索するのを忘れないようにしてください。</p>
<p>以下のような情報はバグ報告において有用です。</p>
<ul>
<li>問題クエリの<code>EXPLAIN VERBOSE</code>出力</li>
<li>関連するテーブルのデータ構造（<code>psql</code>上で<code>\d+ &lt;table name&gt;</code>を実行して得られる）</li>
<li>出力されたログメッセージ（verbose出力が望ましい）</li>
<li>デフォルト値から変更しているGUCオプションの値</li>
<li>ハードウェア設定（特にGPUの型番とRAM容量）</li>
</ul>
<p>あなたの環境で発生した疑わしい動作がバグかどうか定かではない場合、新しいイシューのチケットをオープンする前にメーリングリストへ報告してください。追加的な情報採取の依頼など、開発者は次に取るべきアクションを提案してくれるでしょう。</p>
<h2 id="_4">新機能の提案</h2>
<p>何か新機能のアイデアがある場合、<a href="https://github.com/heterodb/pg-strom/issues">PG-Strom Issue Tracker</a>で新しいイシューをオープンし <strong>feature</strong> タグを付けてください。続いて、他の開発者と議論を行いましょう。</p>
<p>望ましい新機能提案は以下のような要素を含んでいます。</p>
<ul>
<li>あなたはどのような問題を解決/改善したいのか？</li>
<li>あなたのワークロード/ユースケースにとってどの程度深刻なのか？</li>
<li>どのようにそれを実装するのか？</li>
<li>（もしあれば）予想される欠点・トレードオフ</li>
</ul>
<p>開発者の間でその必要性に関してコンセンサスが得られると、コーディネーターはイシューチケットに<strong>accepted</strong>タグを付け、そのチケットはその後の開発作業のトラッキングのために利用されます。それ以外の場合、イシューチケットには<strong>rejected</strong>タグを付けてクローズされます。</p>
<p>一度プロポーザルが却下されたとしても、将来においてまた異なった決定があるかもしれません。周辺状況が変わった場合、新機能の再提案を躊躇する必要はありません。</p>
<p>開発段階では、パッチファイルをイシューチケットに添付するようにしてください。pull-requestは使用しません。</p>
<h2 id="_5">サポートポリシー</h2>
<p>PG-Strom development teamはHeteroDB Software Distribution Centerから配布された最新版のみをサポートします。
トラブルが発生した場合、まずその問題は最新版のリリースで再現するかどうかを確かめてください。</p>
<p>また、これはボランティアベースのコミュニティサポートのポリシーである事に留意してください。つまり、サポートはベストエフォートでかつ、SLAの定義もありません。</p>
<p>もし商用のサポートが必要である場合、HeteroDB社（contact@heterodbcom）にコンタクトしてください。</p>
<h2 id="_6">バージョンポリシー</h2>
<p>PG-Stromのバージョン番号は<code>&lt;major&gt;.&lt;minor&gt;</code>という2つの要素から成ります。</p>
<p>マイナーバージョン番号は各リリース毎に増加し、バグ修正と新機能の追加を含みます。</p>
<p>メジャーバージョン番号は以下のような場合に増加します。</p>
<ul>
<li>対応しているPostgreSQLバージョンのうち、いくつかがサポート対象外となった場合。</li>
<li>対応しているGPUデバイスのうち、いくつかがサポート対象外となった場合。</li>
<li>エポックメイキングな新機能が追加となった場合。</li>
</ul>
              
            </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="install/" class="btn btn-neutral float-right" title="インストール">Next <span class="icon icon-circle-arrow-right"></span></a>
      
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <!-- Copyright etc -->
    
  </div>

  Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
      
        </div>
      </div>

    </section>

  </div>

  <div class="rst-versions" role="note" style="cursor: pointer">
    <span class="rst-current-version" data-toggle="rst-current-version">
      
      
      
        <span style="margin-left: 15px"><a href="install/" style="color: #fcfcfc">Next &raquo;</a></span>
      
    </span>
</div>
    <script>var base_url = '.';</script>
    <script src="js/theme.js" defer></script>
      <script src="search/main.js" defer></script>

</body>
</html>

<!--
MkDocs version : 1.0.4
Build Date UTC : 2019-10-09 01:42:08
-->
